import store from "@/store/index";

export function hasPermission(form,n){
	//1.先获取当前自己的角色
	// console.log('hasPermission',store.state.currentUser.role)

	// 如果工单状态为处理中2时，直接隐藏枪单按钮
	if(form.details[13].value !== 1){
		return false;
	}

	// 工单在待处理状态中1时，查询角色是否匹配
	let role = store.state.currentUser.role
	if ((typeof role) === "string"){
		role = JSON.parse(role)
	}
	// console.log(role)
	let role_list = []
	role.forEach((r)=>{
		role_list.push(r.id)
	})
	// console.log(role_list)
	//2.只有维修人员，id为2，才可以看见枪单按钮
	if(role_list.indexOf(n) !== -1){
		return true;
	}
	else{		//工单待处理，但角色不是维修也看不到按钮
		return false;
	}
}
export function hasDeletePermission(form,debug){
	if(debug){
		console.log('hasDeletePermission')
		console.log('userID: ',store.state.currentUser.ID)
		console.log('发起人',form.details[3].value)
		console.log('处理人',form.details[12].value)
		console.log('处理状态：',form.details[13].value)
	}
	// 按照工单状态判断编辑和删除按钮的功能
	switch(form.details[13].value){
		case 1:		//工单待处理处理状态时，发起人可以删除和编辑
			// 如果本人是发起人可以删除和编辑
			if(store.state.currentUser.ID === form.details[3].value){
				if(debug){console.log('true');}
				return true
				break;
			}
			else{
				if(debug){console.log('false');}
				return false
				break;
			}

		default :		//工单已完成时，只能查看和分享
			return false
	}


	return true
}

export function hasEditPermission(form,debug){
	if(debug){
		console.log('hasEditPermission',form)
		console.log('userID: ',store.state.currentUser.ID)
		console.log('发起人',form.details[3].value)
		console.log('处理状态：',form.details[13].value)
	}

	// 按照工单状态判断编辑按钮的功能
	switch(form.details[13].value){
		case 1:		//工单处理中时，只有发起人才可以修改
			if(store.state.currentUser.ID === form.details[3].value){
				if(debug){console.log('true');}

				return true;
				break;
			}
			else{
				if(debug){console.log('false');}
				return false;
				break;
			}
		case 2:		//工单处理中，只有处理人才能编辑
			if(store.state.currentUser.ID === form.details[12].value){
				if(debug){console.log('true');}

				return true;
				break;
			}
			else{
				if(debug){console.log('false');}
				return false;
				break;
			}
		default :		//工单已完成时，只能查看和分享
			return false
	}
}

export function hasGenerateTaskPermission(){
	// console.log('hasGenerateTaskPermission')
	// console.log('userID: ',store.state.currentUser.role)

	let role = store.state.currentUser.role
	if ((typeof role) === "string"){
		role = JSON.parse(role)
	}
	// console.log(role)
	let role_list = []
	role.forEach((r)=>{
		role_list.push(r.id)
	})
	// console.log(role_list)
	if(role_list.indexOf(1) !== -1){
		return true
	}
	else{
		return false
	}
}
export function hasFinishPermission(form,debug){
	if(debug){
		console.log('hasFinishPermission')
		console.log('userID: ',store.state.currentUser.role)
	}


	//用户角色默认是序列化的状态，先反序列化
	let role = store.state.currentUser.role
	if ((typeof role) === "string"){
		role = JSON.parse(role)
	}
	//循环当前用户角色列表
	// console.log(role)
	let role_list = []
	role.forEach((r)=>{
		role_list.push(r.id)
	})
	// console.log(role_list)
	//遍历角色列表有没有包含维修的角色
	if(role_list.indexOf(2) !== -1){
		//再次检查一下，单子的处理人是否为自己，不能让它终结别人的单子
		// console.log(form.details[12].value,store.state.currentUser.ID)
		if(debug){
			console.log('role',role)
			console.log('role_list',role_list)
			console.log(form.details[12].value,store.state.currentUser.ID)
		}

		if ( form.details[12].value === store.state.currentUser.ID && form.details[13].value === 2 ){
			return true
		}
		else{
			return false
		}
	}
	else{
		return false
	}
}

export function hasSharePermission(form,debug){
	if(debug){
		console.log('hasSharePermission',form)
	}

	if(form.details[12].value === store.state.currentUser.ID){
		return true
	}
	else{
		return false
	}
}